'use strict';

module.exports = app => {
  const { STRING, INTEGER, BOOLEAN, DATE, ENUM } = app.Sequelize;

  const Message = app.model.define('message', {
    // 消息id
    id: {
      type: INTEGER,
      primaryKey: true,
      allowNull: false,
      autoIncrement: true
    },
    // 会话id
    conversation: {
      type: STRING,
      allowNull: false
    },
    // 消息类型
    type: {
      type: ENUM,
      values: ['TEXT', 'IMAGE', 'AUDIO', 'VIDEO', 'FILE'],
      defaultValue: 'TEXT',
      allowNull: false
    },
    // 消息内容
    content: {
      type: STRING,
      allowNull: false
    },
    // 消息发送方
    from: {
      type: STRING,
      allowNull: false
    },
    // 消息接收方
    to: {
      type: STRING,
      allowNull: false
    },
    // 是否撤回
    is_revoke: {
      type: BOOLEAN,
      default: false
    },
    // 是否已读
    is_read: {
      type: BOOLEAN,
      default: false
    },
    created_at: DATE,
    updated_at: DATE
  })

  return Message
}